Hive-এ LATERAL VIEW এবং EXPLODE ফাংশন দুটি শক্তিশালী টুল যা ডেটাকে প্রসেস করার জন্য বিশেষভাবে ব্যবহৃত হয়। এই দুটি ফিচার ব্যবহার করে আপনি নেস্টেড ডেটা (যেমন arrays, maps, অথবা structs) থেকে ডেটা এক্সট্র্যাক্ট করতে এবং ফ্ল্যাট করার কাজ করতে পারেন।
LATERAL VIEW এবং EXPLODE Function এর ধারণা
LATERAL VIEW
LATERAL VIEW Hive-এর একটি অপারেটর যা একটি টেবিলের প্রতিটি রেকর্ডের জন্য আরও অনেক রেকর্ড তৈরি করে। এটি সাধারণত ব্যবহার করা হয় যখন আপনি একটি কলামের মধ্যে থাকা নেস্টেড ডেটা (যেমন array বা map) থেকে একাধিক রেকর্ড বের করতে চান। LATERAL VIEW ব্যবহারের মাধ্যমে আপনি একাধিক রেকর্ড উৎপন্ন করতে পারেন যা পরবর্তীতে অন্য কুয়েরি অপারেশনগুলোর জন্য ব্যবহার করা যায়।
LATERAL VIEW সাধারণত EXPLODE ফাংশনের সাথে ব্যবহৃত হয়, যা অ্যারে বা ম্যাপের উপাদানগুলোকে আলাদা আলাদা রেকর্ডে রূপান্তরিত করে।
EXPLODE Function
EXPLODE ফাংশন একটি বিল্ট-ইন ফাংশন যা array বা map টাইপের ডেটাকে ফ্ল্যাট বা এক্সপ্লোড করে। এটি একটি একক ডেটা পয়েন্টের পরিবর্তে একাধিক রেকর্ড তৈরি করে এবং ডেটাকে অনেকগুলো রো-এ পরিবর্তিত করে। এটি সাধারণত LATERAL VIEW এর সাথে একত্রে ব্যবহৃত হয়।
LATERAL VIEW এবং EXPLODE Function এর ব্যবহার
EXPLODE Function Example
ধরা যাক, আপনার কাছে একটি টেবিল আছে যেখানে একটি কলাম "items" যা array ফরম্যাটে ডেটা ধারণ করে (যেমন: ["apple", "banana", "orange"])। আপনি যদি এই অ্যারে থেকে প্রতিটি আইটেম আলাদা রেকর্ডে বের করতে চান, তাহলে আপনি EXPLODE ফাংশন ব্যবহার করতে পারেন।
EXPLODE Function Example:
SELECT id, item
FROM orders
LATERAL VIEW explode(items) exploded_table AS item;
এখানে, orders টেবিলের items কলামে থাকা অ্যারের প্রতিটি আইটেম একটি নতুন রেকর্ডে রূপান্তরিত হবে, এবং item নামে একটি নতুন কলাম তৈরি হবে।
এটি যদি items কলামে ৩টি আইটেম থাকে (যেমন: "apple", "banana", "orange"), তাহলে এই কুয়েরি ৩টি আলাদা রেকর্ড রিটার্ন করবে:
| id | item |
|---|---|
| 1 | apple |
| 1 | banana |
| 1 | orange |
LATERAL VIEW এর সাহায্যে EXPLODE ব্যবহার
LATERAL VIEW-এর মাধ্যমে আমরা EXPLODE ফাংশনের আউটপুটকে একটি টেবিলের মতো ব্যবহার করতে পারি। এটি মূলত একটি ভার্চুয়াল টেবিল তৈরি করে যা মূল টেবিলের প্রতিটি রেকর্ডের জন্য নতুন রেকর্ড তৈরি করে।
LATERAL VIEW Example:
SELECT id, item
FROM orders
LATERAL VIEW explode(items) exploded_table AS item;
এখানে:
explode(items)অ্যারে থেকে প্রতিটি আইটেম বের করে।LATERAL VIEWএই ফাংশনের আউটপুটকে টেবিলের মতো ব্যবহার করতে সহায়তা করে।exploded_tableহল ভার্চুয়াল টেবিলের নাম, যেখানে আমরাitemনামে কলাম পাবো।
LATERAL VIEW এবং EXPLODE ব্যবহার করার সুবিধা
- নেস্টেড ডেটা হ্যান্ডলিং: LATERAL VIEW এবং EXPLODE ব্যবহার করার মাধ্যমে আপনি জটিল এবং নেস্টেড ডেটা যেমন অ্যারে, ম্যাপ ইত্যাদি সহজে ফ্ল্যাট করে বিশ্লেষণ করতে পারবেন।
- ডেটা ফ্ল্যাটেনিং: যখন ডেটা অ্যারে বা ম্যাপ আকারে থাকে, তখন EXPLODE ফাংশন ব্যবহার করে সেই ডেটাকে ফ্ল্যাট করা যায়, যা পরে সহজে অ্যাক্সেস এবং বিশ্লেষণ করা সম্ভব হয়।
- পারফরম্যান্স অপটিমাইজেশন: যখন আপনার টেবিলের মধ্যে নেস্টেড ডেটা থাকে, তখন LATERAL VIEW এবং EXPLODE ব্যবহার করে এই ডেটাকে অ্যাক্সেস এবং প্রসেসিং দ্রুততর করা যায়।
- জটিল কুয়েরি এক্সিকিউশন: এই ফিচারটি ব্যবহার করে আপনি জটিল কুয়েরি সহজভাবে এক্সিকিউট করতে পারেন, যেমন যখন আপনাকে কোনো অ্যারের প্রতিটি উপাদান অনুযায়ী অপারেশন করতে হয়।
উপসংহার
Hive-এ LATERAL VIEW এবং EXPLODE ফাংশন ব্যবহার করার মাধ্যমে আপনি নেস্টেড ডেটা থেকে একাধিক রেকর্ড বের করতে এবং ডেটাকে ফ্ল্যাট করে সহজভাবে বিশ্লেষণ করতে পারেন। EXPLODE অ্যারে বা ম্যাপের উপাদানগুলিকে আলাদা রেকর্ডে রূপান্তরিত করে এবং LATERAL VIEW তা টেবিলের আকারে ব্যবহার করতে সহায়তা করে। এই দুটি টুল হাইভে ডেটা প্রসেসিং এবং বিশ্লেষণকে আরও শক্তিশালী এবং নমনীয় করে তোলে।
Read more